package com.esunny.resourcevisualization.manage;

import com.esunny.resourcevisualization.dao.ResourceTypeFieldDao;
import com.esunny.resourcevisualization.domain.entity.ResourceTypeField;
import com.esunny.resourcevisualization.domain.response.ReturnStructure;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.List;

/**
 * @version 1.0.0.0
 * @ClassName ResourceTypeFieldManage
 * @Description 资源类别字段数据处理
 * @Author baochencong
 * @Date 2020/9/28 13:34
 */
@Component
public class ResourceTypeFieldManage {

    @Resource
    private ResourceTypeFieldDao resourceTypeFieldDao;

    /**
     * 添加资源类别字段
     *
     * @param resourceTypeField 资源类别字段信息
     * @return 添加结果信息
     */
    public ReturnStructure addResourceTypeField(ResourceTypeField resourceTypeField) {
        return resourceTypeFieldDao.addResourceTypeField(resourceTypeField) ? ReturnStructure.SUCCESS("添加资源类别字段信息成功", null) : ReturnStructure.ERROR("添加资源类别字段（" + resourceTypeField.getResourceTypeFieldName() + "-" + resourceTypeField.getResourceTypeFieldTitle() + "）信息失败", null);
    }

    /**
     * 通过资源类别字段id修改资源类别字段
     *
     * @param resourceTypeField 资源类别字段信息
     * @return 修改结果信息
     */
    public ReturnStructure updateResourceTyprFieldByFieldId(ResourceTypeField resourceTypeField) {
        return resourceTypeFieldDao.updateResourceTyprFieldByFieldId(resourceTypeField) ? ReturnStructure.SUCCESS("修改资源类别字段信息成功", null) : ReturnStructure.ERROR("修改资源类别字段信息失败", null);
    }

    /**
     * 通过资源类别字段id获取资源类别字段信息
     *
     * @param fieldId 资源类别字段id
     * @return 资源类别字段信息
     */
    public ResourceTypeField getResourceTypeFieldId(int fieldId) {
        return resourceTypeFieldDao.getResourceTypeFieldId(fieldId);
    }

    /**
     * 通过资源类别英文名获取资源类别字段列表信息
     *
     * @param name 资源类别英文名
     * @return 资源类别字段列表信息
     */
    public List<ResourceTypeField> getResourceTypeFieldByName(String name) {
        return resourceTypeFieldDao.getResourceTypeFieldByName(name);
    }

    /**
     * 通过资源类别英文名和资源类别字段英文名1获取资源类别字段信息
     *
     * @param name      资源类别英文名
     * @param fieldName 资源类别字段英文名
     * @return 资源类别字段
     */
    public ResourceTypeField getResourceTypeFieldByNameAndFieldName(String name, String fieldName) {
        return resourceTypeFieldDao.getResourceTypeFieldByNameAndFieldName(name, fieldName);
    }

    /**
     * 通过资源类别英文名和资源类别字段中文名1获取资源类别字段信息
     *
     * @param name       资源类别英文名
     * @param fieldTitle 资源类别字段中文名
     * @return 资源类别字段
     */
    public ResourceTypeField getResourceTypeFieldByNameAndFieldTitle(String name, String fieldTitle) {
        return resourceTypeFieldDao.getResourceTypeFieldByNameAndFieldTitle(name, fieldTitle);
    }
}
